/* 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
var registroDerivo =null;
function removeAllOptions(selectbox){
    var i;
    for(i=selectbox.options.length-1;i>=0;i--){
        selectbox.remove(i);
    }
}

function solonumeros(e) {
    tecla = (document.all) ? e.keyCode : e.which;
    if (tecla==8) return true;
    patron =/\d/;
    te = String.fromCharCode(tecla);
    return patron.test(te);
}

function fnConfiguraPantalla(){
    new Ext.form.DateField({
        renderTo:'fechatramite',
        id:'fechasolicitud2',
        format:'d/m/Y'
    });
    fnsetFechaSistema("fechasolicitud2");
    fnCargarTipoDocumentos();
}

function fnIniciarTramite(){
    var frmAgregarTrama =new Ext.Panel({
        bodyBorder:true,
        height:280,
        bodyStyle: "background-color:#DFE8F6; border:0"
    });
    Ext.Ajax.request({
        url:"../IniciarTramite.do",
        method:'POST', 
        waitTitle:'Cargando...', 
        waitMsg:'Espere un momento mientras inicia el formulario...',
        success:function(response){
            frmAgregarTrama.html=response.responseText;
            var winIniciarTramite= new Ext.Window({
                title:'Iniciar Nuevo Tramite',
                closeAction:'destroy',
                id: "winIniciarTramite",
                width:820,
                height:340,
                x:0,
                y:0,
                items:[frmAgregarTrama],
                shim:false,
                modal:true,
                maximizable:true,
                minimizable:false,
                animCollapse:false,
                resizable:false,
                constrainHeader:true,
                bbar:[{
                    text:'Iniciar Tramite',
                    iconCls:'icon-iniciar',
                    handler: function(){
                        fnGenerarTramite();
                    }
                }, '-', {
                    text:'Salir',
                    iconCls:'icon-cancel',
                    handler: function(){
                        winIniciarTramite.destroy();
                    }
                }]
            });      
            winIniciarTramite.show();
            fnConfiguraPantalla();
        },
        failure:function(response){ 
            var error = Ext.decode(response.responseText);
            Ext.Msg.alert('SISINF/Err-01:Error al cargar el formulario Iniciar Tramite!', error); 
        } 
    });  
}

function fnCargarTipoDocumentos(){
    Ext.Ajax.request({
        url:"../jsonTipoDocumentos.do",
        method:'POST',
        success:function(response){
            var lstTipoDocumento = Ext.decode(response.responseText);
            var eSelect = document.getElementById("cbotipodocumento");
            removeAllOptions(eSelect);
            for (var i=0;i<lstTipoDocumento.Datos.length;i++){
                var eOption = document.createElement("option");
                eOption.setAttribute("value", lstTipoDocumento.Datos[i].ntido_identificador);
                eOption.appendChild(document.createTextNode(lstTipoDocumento.Datos[i].ctido_descripcion));
                eSelect.appendChild(eOption);
            }
        } 
    });
}

function fnBuscarAdministrado(ventana){
    var frmBuscar =new Ext.Panel({
        bodyBorder:true,
        height:400,
        bodyStyle: "background-color:#DFE8F6; border:0"
    });
    var dsPersonal=new Ext.data.Store({
        autoDestroy: true,
        url: "../listaAdministrado.do",
        reader: new Ext.data.JsonReader({
            root: "persona",
            fields:[{
                name: "cpersApepaterno",
                type: "string"
            },{
                name: "cpersApematerno",
                type: "string"
            },{
                name: "npersIdentificador",
                type: "integer"
            },{
                name: "cpersNombre",
                type: "string"
            },{
                name: "cpers_codofin",
                type: "string"
            },{
                name: "cpers_nrocip",
                type: "string"
            },{
                name: "cpers_unidad",
                type: "string"
            },{
                name: "cpers_nrodni",
                type: "string"
            },{
                name: "cgrad_descripcion",
                type: "string"
            }]
        })
    });
    dsPersonal.on("exception",function(proxy, type, action, options, response, arg){
        Ext.MessageBox.alert("Error","Error DIRPEN:0301: No se pudo cargar DataStore dsPersonal");
    });

    var grdPersona=new Ext.grid.GridPanel({
        height: 300,
        id: "grdPersona",
        store: dsPersonal,
        columns:[{
            header: "DNI",
            dataIndex: "cpers_nrodni",
            sortable:true,
            width: 80
        },{
            header: "Apellido Paterno",
            dataIndex: "cpersApepaterno",
            sortable:true,
            width: 150
        },{
            header: "Apellido Materno",
            dataIndex: "cpersApematerno",
            sortable:true,
            width: 150
        },{
            header: "Nombres",
            dataIndex: "cpersNombre",
            sortable:true,
            width: 150
        },{
            header: "NRO CIP",
            dataIndex: "cpers_nrocip",
            sortable:true,
            width: 100
        },{
            header: "GRADO",
            dataIndex: "cgrad_descripcion",
            sortable:true,
            width: 150
        }]
    });
    dsPersonal.reload({
        params:{
            operacion: 'buscarAdministrado',
            cpersApepaterno:'-99',
            cpersApematerno:'-99',
            cpersNombre:'-99',
            cip:'-99',
            dni:'-99'
        }
    });

    grdPersona.on("rowdblclick",function(grid,rowIndex,e){});

    var seleccionPersona=grdPersona.getSelectionModel();
    seleccionPersona.on("rowselect",function(sm,fila,registro){
        Ext.fly("txtadministrado").dom.value = registro.data.cpersApepaterno + " " +registro.data.cpersApematerno+" "+registro.data.cpersNombre;
        Ext.fly("npers_administrado").dom.value = registro.data.npersIdentificador;
    });
    
    Ext.Ajax.request({
        url:"../BuscarAdministrado.do",
        method:'POST', 
        waitTitle:'Cargando...', 
        waitMsg:'Espere un momento mientras inicia el formulario...',
        success:function(response){
            frmBuscar.html=response.responseText;
            var winBuscarAdministrado = new Ext.Window({
                title:'Buscar Administrado',
                closeAction:'destroy',
                id: 'winBuscarAdministrado',
                width:800,
                height: 450,
                shim:false,
                maximizable:false,
                modal:true,
                resizable: false,
                animCollapse:false,
                layout: 'border',
                items:[{
                    region: 'north',
                    height: 170,
                    split: false,
                    border:false,
                    layout:'fit',
                    xtype: 'panel',
                    items: frmBuscar,
                    bbar:[{
                        text:'Buscar',
                        iconCls:'icon-preview',
                        handler: function(){
                            fnFiltrarPersonas();
                        }
                    },'-',{
                        text:'Seleccionar',
                        iconCls:'icon-selector',
                        handler: function(){
                            winBuscarAdministrado.destroy();
                            if (ventana=="Sobreviviente"){
                                fnRecargarGestionSobrevivientes();
                            }
                        }
                    }]
                },{
                    region: 'center',
                    height: 300,
                    split: false,
                    border:false,
                    xtype: 'panel',
                    layout:'fit',
                    bodyStyle: "background-color:#DFE8F6; border:0",
                    items: grdPersona
                }]
            });
            winBuscarAdministrado.show();
            winBuscarAdministrado.focus();
        }
    }); 
}


function fnFiltrarPersonas(){
    if (Ext.fly("cpersApepaterno").dom.value!="" || Ext.fly("cpersApematerno").dom.value!="" || Ext.fly("cpersNombre").dom.value !="" ){
        if (Ext.fly("cpersApepaterno").dom.value.length >= 3 || Ext.fly("cpersApematerno").dom.value.length >= 3 || Ext.fly("cpersNombre").dom.value.length >= 3 ){
            var grd = Ext.getCmp("grdPersona");
            var dsPersonal = grd.getStore();
            dsPersonal.reload({
                params:{
                    operacion: 'buscarAdministrado',
                    cpersApepaterno:Ext.fly("cpersApepaterno").dom.value,
                    cpersApematerno:Ext.fly("cpersApematerno").dom.value,
                    cpersNombre:Ext.fly("cpersNombre").dom.value,
                    cip:Ext.fly("cpersCIP").dom.value,
                    dni:Ext.fly("cpersDNI").dom.value
                }
            });
        }else{
            alert("Debe ingresar por lo menos 3 letras en algun criterio para realizar la busqueda");
        }
    }else{
        alert("Debe ingresar un criterio de busqueda");
    }
}

function fnConfigurarSolicitante(){
    Ext.fly("txtidsolicitante").dom.value =""
    Ext.fly("txtsolicitante").dom.value=""
    if (Ext.fly("cboTipoSolicitante").dom.value=="-1" || Ext.fly("cboTipoSolicitante").dom.value=="C" ){
        if (Ext.fly("cboTipoSolicitante").dom.value=="C"){
            if (Ext.fly("npers_administrado").dom.value==""){
                alert("Debe seleccionar el causante");
                Ext.fly("cboTipoSolicitante").dom.value="-1";
                Ext.fly("btobuscaradministrado").dom.focus();
            }else{
                Ext.fly("txtidsolicitante").dom.value =Ext.fly("npers_administrado").dom.value;
                Ext.fly("txtsolicitante").dom.value=Ext.fly("txtadministrado").dom.value;
            }
        }
        Ext.fly("btobuscarsolicitante").dom.disabled=true;
    }else{
        Ext.fly("btobuscarsolicitante").dom.disabled=false;
    }
}


function fnBuscarSolicitante(){
    if (Ext.fly("cboTipoSolicitante").dom.value=="S"){
        fnBuscarSobreviviente();
    }else if(Ext.fly("cboTipoSolicitante").dom.value=="D"){
        fnBuscarDependenciaExterna();
    }
}

function fnBuscarDependenciaExterna(){
    var frmBuscar =new Ext.Panel({
        bodyBorder:true,
        height:400,
        bodyStyle: "background-color:#DFE8F6; border:0"
    });
    var dsDependencia=new Ext.data.Store({
        autoDestroy: true,
        url: "../GestionDependencia.do",
        reader: new Ext.data.JsonReader({
            root: "dependencia",
            fields:[{
                name: "ndepeIdentificador",
                type: "integer"
            },{
                name: "cdepeNombre",
                type: "string"
            }]
        })
    });
    dsDependencia.on("exception",function(proxy, type, action, options, response, arg){
        Ext.MessageBox.alert("Error","Error DIRPEN:0501: No se pudo cargar DataStore dsDependencia");
    });

    var grdDependencia=new Ext.grid.GridPanel({
        height: 300,
        id: "grdDependencia",
        store: dsDependencia,
        columns:[{
            header: "Dependencia",
            dataIndex: "cdepeNombre",
            sortable:true,
            width: 400
        }]
    });
    dsDependencia.reload({
        params:{
            operacion: 'buscarDependenciaExterna',
            cdepeNombre:'-99'
        }
    });

    var seleccionDependencia=grdDependencia.getSelectionModel();
    seleccionDependencia.on("rowselect",function(sm,fila,registro){
        Ext.fly("txtsolicitante").dom.value = registro.data.cdepeNombre;
        Ext.fly("txtidsolicitante").dom.value = registro.data.ndepeIdentificador;
    });
    
    Ext.Ajax.request({
        url:"../frmBuscarDependencia.do",
        method:'POST', 
        waitTitle:'Cargando...', 
        waitMsg:'Espere un momento mientras inicia el formulario...',
        success:function(response){
            frmBuscar.html=response.responseText;
            var winBuscarDependencia= new Ext.Window({
                title:'Buscar Dependencia',
                closeAction:'destroy',
                id: 'winBuscarDependencia',
                width:800,
                height: 450,
                shim:false,
                maximizable:false,
                modal:true,
                resizable: false,
                animCollapse:false,
                layout: 'border',
                items:[{
                    region: 'north',
                    height: 100,
                    split: false,
                    border:false,
                    layout:'fit',
                    xtype: 'panel',
                    items: frmBuscar,
                    bbar:[{
                        text:'Buscar',
                        iconCls:'icon-preview',
                        handler: function(){
                            fnFiltrarDependencias();
                        }
                    },'-',{
                        text:'Seleccionar',
                        iconCls:'icon-selector',
                        handler: function(){
                            winBuscarDependencia.destroy();
                        }
                    }]
                },{
                    region: 'center',
                    height: 350,
                    split: false,
                    border:false,
                    xtype: 'panel',
                    layout:'fit',
                    bodyStyle: "background-color:#DFE8F6; border:0",
                    items: grdDependencia
                }]
            });
            winBuscarDependencia.show();
            winBuscarDependencia.focus();
        }
    }); 
}

function fnBuscarSobreviviente(){
    var frmBuscar =new Ext.Panel({
        bodyBorder:true,
        height:400,
        bodyStyle: "background-color:#DFE8F6; border:0"
    });
    var dsSobreviviente=new Ext.data.Store({
        autoDestroy: true,
        url: "../listaSobreviviente.do",
        reader: new Ext.data.JsonReader({
            root: "sobreviviente",
            fields:[{
                name: "nsobrIdentificador",
                type: "integer"
            },{
                name: "csobrApenom",
                type: "string"
            },{
                name: "dsobrFechanacimiento",
                type: "string"
            },{
                name: "csobrDocumentoIdentidad",
                type: "string"
            },{
                name: "cpareDescripcion",
                type: "string"
            },{
                name: "cesciDescripcion",
                type: "string"
            },{
                name: "csobrSexo",
                type: "string"
            }]
        })
    });
    dsSobreviviente.on("exception",function(proxy, type, action, options, response, arg){
        Ext.MessageBox.alert("Error","Error DIRPEN:0401: No se pudo cargar DataStore dsSobreviviente");
    });

    var grdSobreviviente=new Ext.grid.GridPanel({
        height: 300,
        id: "grdSobreviviente",
        store: dsSobreviviente,
        columns:[{
            header: "Apellidos y Nombres",
            dataIndex: "csobrApenom",
            sortable:true,
            width: 200
        },{
            header: "Fecha Nac.",
            dataIndex: "dsobrFechanacimiento",
            sortable:true,
            width: 80
        },{
            header: "Doc. Identidad",
            dataIndex: "csobrDocumentoIdentidad",
            sortable:true,
            width: 150
        },{
            header: "Parentesco",
            dataIndex: "cpareDescripcion",
            sortable:true,
            width: 150
        },{
            header: "Estado Civil",
            dataIndex: "cesciDescripcion",
            sortable:true,
            width: 100
        },{
            header: "Sexo",
            dataIndex: "csobrSexo",
            sortable:true,
            width: 80
        }]
    });
    dsSobreviviente.reload({
        params:{
            operacion: 'buscarSobreviviente',
            csobApeNom:'-99',
            npersIndentificador:'-99'
        }
    });

    var seleccionSobreviviente=grdSobreviviente.getSelectionModel();
    seleccionSobreviviente.on("rowselect",function(sm,fila,registro){
        Ext.fly("txtsolicitante").dom.value = registro.data.csobrApenom;
        Ext.fly("txtidsolicitante").dom.value = registro.data.nsobrIdentificador;
    });
    
    Ext.Ajax.request({
        url:"../frmBuscarSobreviviente.do",
        method:'POST', 
        waitTitle:'Cargando...', 
        waitMsg:'Espere un momento mientras inicia el formulario...',
        success:function(response){
            frmBuscar.html=response.responseText;
            var winBuscarSobreviviente = new Ext.Window({
                title:'Buscar Sobreviviente',
                closeAction:'destroy',
                id: 'winBuscarSobreviviente',
                width:800,
                height: 450,
                shim:false,
                maximizable:false,
                modal:true,
                resizable: false,
                animCollapse:false,
                layout: 'border',
                items:[{
                    region: 'north',
                    height: 100,
                    split: false,
                    border:false,
                    layout:'fit',
                    xtype: 'panel',
                    items: frmBuscar,
                    bbar:[{
                        text:'Buscar',
                        iconCls:'icon-preview',
                        handler: function(){
                            fnFiltrarSobrevivientes();
                        }
                    },'-',{
                        text:'Seleccionar',
                        iconCls:'icon-selector',
                        handler: function(){
                            winBuscarSobreviviente.destroy();
                        }
                    }]
                },{
                    region: 'center',
                    height: 350,
                    split: false,
                    border:false,
                    xtype: 'panel',
                    layout:'fit',
                    bodyStyle: "background-color:#DFE8F6; border:0",
                    items: grdSobreviviente
                }]
            });
            winBuscarSobreviviente.show();
            winBuscarSobreviviente.focus();
            Ext.fly("txtIdCausante").dom.value = Ext.fly("npers_administrado").dom.value;
            Ext.fly("txtCausante").dom.value = Ext.fly("txtadministrado").dom.value;
        }
    });  
}

function fnFiltrarSobrevivientes(){
    if (Ext.fly("csobApenom").dom.value!="" ){
        if (Ext.fly("csobApenom").dom.value.length >= 3){
            var grd = Ext.getCmp("grdSobreviviente");
            var dsSobreviviente = grd.getStore();
            dsSobreviviente.reload({
                params:{
                    operacion: 'buscarSobreviviente',
                    csobApeNom:Ext.fly("csobApenom").dom.value,
                    npersIndentificador:Ext.fly("txtIdCausante").dom.value
                }
            });
        }else{
            alert("Debe ingresar por lo menos 3 letras en algun criterio para realizar la busqueda");
        }
    }else{
        alert("Debe ingresar un criterio de busqueda");
    }
}

function fnFiltrarDependencias(){
    if (Ext.fly("cdepeNombre").dom.value!="" ){
        if (Ext.fly("cdepeNombre").dom.value.length >= 3){
            var grd = Ext.getCmp("grdDependencia");
            var dsDependencia = grd.getStore();
            dsDependencia.reload({
                params:{
                    operacion: 'buscarDependenciaExterna',
                    cdepeNombre:Ext.fly("cdepeNombre").dom.value
                }
            });
        }else{
            alert("Debe ingresar por lo menos 3 letras en algun criterio para realizar la busqueda");
        }
    }else{
        alert("Debe ingresar un criterio de busqueda");
    }
}

function fnBeneficioSolicita(){
    var sm = new Ext.grid.CheckboxSelectionModel();
    var dsTipoBeneficio=new Ext.data.Store({
        autoDestroy: true,
        url: "../GestionTipoBeneficio.do",
        reader: new Ext.data.JsonReader({
            root: "tipobeneficio",
            fields:[{
                name: "ntibeIdentificador",
                type: "integer"
            },{
                name: "ctibeDescripcion",
                type: "string"
            }]
        })
    });
    dsTipoBeneficio.on("exception",function(proxy, type, action, options, response, arg){
        Ext.MessageBox.alert("Error","Error DIRPEN:0601: No se pudo cargar DataStore dsTipoBeneficio");
    });

    var grdTipoBeneficio=new Ext.grid.GridPanel({
        height: 300,
        id: "grdTipoBeneficio",
        store: dsTipoBeneficio,
        selModel: new Ext.grid.CheckboxSelectionModel({
            singleSelect : false
        }),
        plugins:[new Ext.ux.grid.Search({
            mode:'local',
            iconCls:false,
            minLength:2,
            width: 350
        })],
        columns:[new Ext.grid.RowNumberer(),sm,{
            header: "Tipo Beneficio",
            dataIndex: "ctibeDescripcion",
            sortable:true,
            width: 400
        }],
        tbar:[{
            text:'Aceptar',
            iconCls:'icon-selector',
            handler: function(){
                fnSeleccionarBeneficios();
            }
        }]
    });
   
    dsTipoBeneficio.reload({
        params:{
            operacion: 'listaTipoBeneficios'
        }
    });
    var winTipoBeneficio = new Ext.Window({
        title:'Beneficios a Solicitar',
        closeAction:'destroy',
        id: 'winTipoBeneficio',
        width:500,
        height: 450,
        shim:false,
        maximizable:false,
        modal:true,
        resizable: false,
        animCollapse:false,
        layout: 'fit',
        items: grdTipoBeneficio
    });
    winTipoBeneficio.show();
    winTipoBeneficio.focus();
}

function fnSeleccionarBeneficios(){
    var gridBeneficios = Ext.getCmp("grdTipoBeneficio");
    var sm = gridBeneficios.getSelectionModel().getSelections();
    //Falta Ordenar el Arreglo de Tipo de Beneficios antes de concatenar.
    //Se muestra en el orden en que se ha seleccionado.
    var seleccionBeneficio ="";
    for (var i=0; i<=sm.length-1; i++) {
        if (i==0){
            seleccionBeneficio = sm[i].get('ntibeIdentificador');
        }else{
            seleccionBeneficio = seleccionBeneficio +"," +sm[i].get('ntibeIdentificador');
        }
    }
    Ext.fly("txtbeneficiosolicita").dom.value=seleccionBeneficio;
    Ext.getCmp("winTipoBeneficio").destroy();
}

function fnGenerarTramite(){
    fnIniciarDerivacionTramite("18");
//    Ext.Ajax.request({
//        url: "../GestionTramiteDocumentario.do",
//        method:"POST",
//        async:false,
//        waitTitle:'Grabando...', 
//        waitMsg:'Espere un momento mientras inicia tramite...',
//        params:{
//            operacion:"iniciarTramiteDocumentario",
//            asunto:Ext.fly("ctram_observaciones").dom.value,
//            fono:Ext.fly("txtfonosolicitante").dom.value,
//            htsige:Ext.fly("txthtexterna").dom.value,
//            tipodocumento: Ext.fly("cbotipodocumento").dom.value,
//            nrofolios: Ext.fly("nroFolios").dom.value,
//            nrodocumento:Ext.fly("txtnumerodocumento").dom.value,
//            nrodocumentocompleto:Ext.fly("txtnumerodocumento").dom.value+'-'+Ext.fly("docSiglas").dom.value+'-'+Ext.fly("txtanio").dom.value,
//            sobreviviente:Ext.fly("txtidsolicitante").dom.value,
//            administrado:Ext.fly("npers_administrado").dom.value,
//            tiposolicitante:Ext.fly("cboTipoSolicitante").dom.value,
//            dependenciaexterna:Ext.fly("txtidsolicitante").dom.value,
//            prioridad:Ext.fly("cboprioridad").dom.value,
//            beneficios: Ext.fly("txtbeneficiosolicita").dom.value
//        },
//        success:function(response){
//            var respuesta = Ext.decode(response.responseText);
//            fnIniciarDerivacionTramite(respuesta.tramitedocumentario[0].htInterna);
//        },
//        failure:function(response){ 
//            var error = Ext.decode(response.responseText);
//            Ext.MessageBox.alert("Error","Error DIRPEN:0801: No se pudo grabar el registro Iniciar Tramite");
//        } 
//    });
    
}

function fnsetFechaSistema(objeto){
    Ext.Ajax.request({
        url:"../jsonGenerales.do",
        method:'POST',
        async:false,
        params: {
            operacion: 'getFechaSistema'
        },
        success:function(response){
            var generales = Ext.decode(response.responseText);
            var fechaSistema = generales.Datos[0].fecha_sistema;
            Ext.getCmp(objeto).setValue(fechaSistema);          
        }
    });
}

function fnValidaActivarObjeto(checkbox,button){
    if (Ext.fly(checkbox).dom.checked){
        Ext.fly(button).dom.disabled=false;
    }else{
        Ext.fly(button).dom.disabled=true;
    }
}
function fnIniciarDerivacionTramite(htInterna){
    Ext.Ajax.request({
        url:"../GestionTramiteDocumentario.do",
        method:'POST',
        async:false,
        params: {
            operacion: 'obtenerDatosTramite',
            ingreso: htInterna
        },
        success:function(response){
            var datosTramite = Ext.decode(response.responseText);
            
            var dsDerivos=new Ext.data.Store({
                autoDestroy: true,
                url: "../GestionTramiteDocumentario.do",
                reader: new Ext.data.JsonReader({
                    root: "derivos",
                    fields:[{
                        name: "nsaliIdentificador",
                        type: "integer"
                    },{
                        name: "dsaliFechaCreacion",
                        type: "string"
                    },{
                        name: "ndepeIdentificador",
                        type: "integer"
                    },{
                        name: "ndepeDestino",
                        type: "integer"
                    },{
                        name: "cdepeDestino",
                        type: "string"
                    },{
                        name: "ningrIdentificador",
                        type: "integer"
                    },{
                        name: "cusuaUserName",
                        type: "string"
                    }]
                })
            });
            dsDerivos.on("exception",function(proxy, type, action, options, response, arg){
                Ext.MessageBox.alert("Error","Error DIRPEN:0701: No se pudo cargar DataStore dsDerivos");
            });

            var grdDerivos=new Ext.grid.GridPanel({
                height: 800,
                id: "grdDerivos",
                store: dsDerivos,
                columns:[new Ext.grid.RowNumberer(),{
                    header: "Derivado a...",
                    dataIndex: "cdepeDestino",
                    sortable:true,
                    width: 500
                },{
                    header: "Fecha Derivo",
                    dataIndex: "dsaliFechaCreacion",
                    sortable:true,
                    width: 100
                },{
                    header: "Creado Por",
                    dataIndex: "cusuaUserName",
                    sortable:true,
                    width: 160
                }]
            });
            dsDerivos.reload({
                params:{
                    operacion: 'obtenerDerivosTramite',
                    ingreso:htInterna
                }
            });
            
            var seleccionDerivo=grdDerivos.getSelectionModel();
            seleccionDerivo.on("rowselect",function(sm,fila,registro){
                registroDerivo =registro;
            });
            var frmResumenTramite =new Ext.Panel({
                bodyBorder:true,
                height:400,
                bodyStyle: "background-color:#DFE8F6; border:0"
            });
            Ext.Ajax.request({
                url:"../frmResumenTramiteDerivar.do",
                method:'POST',
                waitTitle:'Cargando...',
                waitMsg:'Espere un momento mientras inicia el formulario...',
                success:function(response){
                    frmResumenTramite.html=response.responseText;
                    var winDerivarTramite= new Ext.Window({
                        title:'Derivar Tramite',
                        closeAction:'destroy',
                        id: 'winDerivarTramite',
                        width:825,
                        height: 420,
                        shim:false,
                        maximizable:false,
                        modal:true,
                        resizable: false,
                        animCollapse:false,
                        layout: 'border',
                        items:[{
                            region: 'north',
                            height: 220,
                            split: false,
                            border:false,
                            layout:'fit',
                            xtype: 'panel',
                            items: frmResumenTramite,
                            bbar:[{
                                text:'Agregar',
                                iconCls:'icon-add',
                                handler: function(){
                                    fnAgregarDerivacion(htInterna);
                                }
                            },'-',{
                                text:'Eliminar',
                                iconCls:'icon-delete',
                                handler: function(){
                                    fnEliminarDerivacion(registroDerivo.data.nsaliIdentificador,htInterna);
                                }
                            },'-',{
                                text:'Terminar',
                                iconCls:'icon-selector',
                                handler: function(){
                                    winDerivarTramite.destroy();
                                    Ext.getCmp("winIniciarTramite").destroy();
                                    fnIniciarTramite();
                                }
                            }]
                        },{
                            region: 'center',
                            height: 200,
                            split: false,
                            border:false,
                            xtype: 'panel',
                            layout:'fit',
                            bodyStyle: "background-color:#DFE8F6; border:0",
                            items:grdDerivos
                        }]
                    });
                    winDerivarTramite.show();
                    winDerivarTramite.focus();
                    Ext.fly("txthtinterna").dom.value=datosTramite.tramite[0].ctramHojaTramDoc;
                    Ext.fly("txtNombresAdministrado").dom.value=datosTramite.tramite[0].cpersAdministrado;
                    Ext.fly("txtNombresSolicitante").dom.value=datosTramite.tramite[0].csoli_solicitante;
                    Ext.fly("txtDescripcionBeneficioSolicita").dom.value="Aca vban todos";
                }
            });        
        }
    });
}


function fnValidarTipoDocumento(){
    
}


function fnAgregarDerivacion(htInterna){
    var frmDerivar =new Ext.Panel({
        bodyBorder:true,
        height:280,
        bodyStyle: "background-color:#DFE8F6; border:0"
    });
    Ext.Ajax.request({
        url:"../frmCabeceraDerivar.do",
        method:'POST', 
        waitTitle:'Cargando...', 
        waitMsg:'Espere un momento mientras inicia el formulario...',
        success:function(response){
            frmDerivar.html=response.responseText;
            var winCabeceraDerivarTramite= new Ext.Window({
                title:'Derivar Tramite',
                closeAction:'destroy',
                id: "winCabeceraDerivarTramite",
                width:590,
                height:280,
                items:[frmDerivar],
                shim:false,
                modal:true,
                maximizable:true,
                minimizable:false,
                animCollapse:false,
                resizable:false,
                constrainHeader:true,
                bbar:[{
                    text:'Grabar Derivación',
                    iconCls:'icon-save',
                    handler: function(){
                        fnGrabarDerivo(htInterna);
                    }
                }, '-', {
                    text:'Salir',
                    iconCls:'icon-cancel',
                    handler: function(){
                        winCabeceraDerivarTramite.destroy();
                    }
                }]
            });      
            winCabeceraDerivarTramite.show(); 
            fnCargarDependenciaNivel(0,document.getElementById("cboDependenciaNivel0"));
                       
        }
    });
}

function fnEliminarDerivacion(idsalida,htInterna){
    Ext.Ajax.request({
        url: "../GestionTramiteDocumentario.do",
        method:"POST",
        async:false,
        params:{
            operacion:"eliminarDerivo",
            salida:idsalida
        },
        success:function(response){
            var respuesta = Ext.decode(response.responseText);
            fnRecargarDerivaciones(htInterna);
        },
        failure:function(response){ 
            var error = Ext.decode(response.responseText);
            Ext.MessageBox.alert("Error","Error DIRPEN:0801: No se pudo eliminar el registro");
        } 
    });
    
}

function fnActualizarDependenciaNivel(padre,hijo){
    fnCargarDependenciaNivel(document.getElementById(padre).value,document.getElementById(hijo));
    
}

function fnCargarDependenciaNivel(padre,obj){
    Ext.Ajax.request({
        url:"../GestionDependencia.do",
        method:'POST',
        async:false,
        params: {
            operacion: 'buscarDependenciaNivel',
            ndepePadre: padre
        },
        success:function(response){
            var lstDependencias = Ext.decode(response.responseText);
            var eSelect = obj;
            removeAllOptions(eSelect);
            var eOption =null;
            for (var i=0;i<lstDependencias.dependencia.length;i++){
                eOption = document.createElement("option");
                eOption.setAttribute("value", lstDependencias.dependencia[i].ndepeIdentificador);
                eOption.appendChild(document.createTextNode(lstDependencias.dependencia[i].cdepeNombre));
                eSelect.appendChild(eOption);
            }
            var mensaje ="";
            if (lstDependencias.dependencia.length==0){
                mensaje="[NO EXISTEN DEPENDENCIAS REGISTRADAS A ESTE NIVEL]";
            }else{
                mensaje="[SELECCIONE UNA DEPENDENCIA]";
            }
            eOption = document.createElement("option");
            eOption.setAttribute("value", "-1");
            eOption.appendChild(document.createTextNode(mensaje));
            eSelect.appendChild(eOption);
            eSelect.value ="-1";
        } 
    });
}


function fnCargarAccionesTramite(){
    var sm = new Ext.grid.CheckboxSelectionModel();
    var dsAccionTramite=new Ext.data.Store({
        autoDestroy: true,
        url: "../GestionAccionTramite.do",
        reader: new Ext.data.JsonReader({
            root: "accionTramite",
            fields:[{
                name: "nactrIdentificador",
                type: "integer"
            },{
                name: "cactrDescripcion",
                type: "string"
            }]
        })
    });
    dsAccionTramite.on("exception",function(proxy, type, action, options, response, arg){
        Ext.MessageBox.alert("Error","Error DIRPEN:0601: No se pudo cargar DataStore dsTipoBeneficio");
    });

    var grdAccionTramite=new Ext.grid.GridPanel({
        height: 300,
        id: "grdAccionTramite",
        store: dsAccionTramite,
        selModel: new Ext.grid.CheckboxSelectionModel({
            singleSelect : false
        }),
        plugins:[new Ext.ux.grid.Search({
            mode:'local',
            iconCls:false,
            minLength:2,
            width: 350
        })],
        columns:[new Ext.grid.RowNumberer(),sm,{
            header: "Accion Tramite",
            dataIndex: "cactrDescripcion",
            sortable:true,
            width: 400
        }],
        tbar:[{
            text:'Aceptar',
            iconCls:'icon-selector',
            handler: function(){
                fnSeleccionarAccionTramite();
            }
        }]
    });
   
    dsAccionTramite.reload({
        params:{
            operacion: 'listaAccionTramite'
        }
    });
    var winAccionTramite = new Ext.Window({
        title:'Acciones del Trámite',
        closeAction:'destroy',
        id: 'winAccionTramite',
        width:500,
        height: 450,
        shim:false,
        maximizable:false,
        modal:true,
        resizable: false,
        animCollapse:false,
        layout: 'fit',
        items: grdAccionTramite
    });
    winAccionTramite.show();
    winAccionTramite.focus();
}

function fnSeleccionarAccionTramite(){
    var grdAccionTramite = Ext.getCmp("grdAccionTramite");
    var sm = grdAccionTramite.getSelectionModel().getSelections();
    //Falta Ordenar el Arreglo de Tipo de Beneficios antes de concatenar.
    //Se muestra en el orden en que se ha seleccionado.
    var seleccionAccionTramite ="";
    for (var i=0; i<=sm.length-1; i++) {
        if (i==0){
            seleccionAccionTramite = sm[i].get('nactrIdentificador');
        }else{
            seleccionAccionTramite = seleccionAccionTramite +"," +sm[i].get('nactrIdentificador');
        }
    }
    Ext.fly("txtAccionTramite").dom.value=seleccionAccionTramite;
    Ext.getCmp("winAccionTramite").destroy();
}

function fnGrabarDerivo(htInterna){
    var vDestino = "-99";
    if (document.getElementById("cboDependenciaNivel4").value!="-1" && document.getElementById("cboDependenciaNivel4").value!="-99" ){
        vDestino = document.getElementById("cboDependenciaNivel4").value;
    }else{
        if (document.getElementById("cboDependenciaNivel3").value!="-1" && document.getElementById("cboDependenciaNivel3").value!="-99" ){
            vDestino = document.getElementById("cboDependenciaNivel3").value;
        }else{
            if (document.getElementById("cboDependenciaNivel2").value!="-1" && document.getElementById("cboDependenciaNivel2").value!="-99" ){
                vDestino = document.getElementById("cboDependenciaNivel2").value;
            }else{
                if (document.getElementById("cboDependenciaNivel1").value!="-1" && document.getElementById("cboDependenciaNivel1").value!="-99" ){
                    vDestino = document.getElementById("cboDependenciaNivel1").value;
                }else{
                    if (document.getElementById("cboDependenciaNivel0").value!="-1" && document.getElementById("cboDependenciaNivel0").value!="-99" ){
                        vDestino = document.getElementById("cboDependenciaNivel0").value;
                    }else{
                        vDestino = "-99";
                        alert("Debe seleccionar un destino");
                    }
                }
            }
        }
    }
    if (vDestino != "-99"){
        Ext.Ajax.request({
            url: "../GestionTramiteDocumentario.do",
            method:"POST",
            async:false,
            waitTitle:'Agregando Derivo...', 
            waitMsg:'Espere un momento mientras inicia tramite...',
            params:{
                operacion:"derivarTramiteDocumentario",
                destino:vDestino,
                ingreso:htInterna,
                acciones:Ext.fly("txtAccionTramite").dom.value
            },
            success:function(response){
                var respuesta = Ext.decode(response.responseText);
                Ext.getCmp("winCabeceraDerivarTramite").destroy();
                fnRecargarDerivaciones(htInterna);
            },
            failure:function(response){ 
                var error = Ext.decode(response.responseText);
                Ext.MessageBox.alert("Error","Error DIRPEN:0801: No se pudo grabar el registro Iniciar Tramite");
            } 
        });
    }
}

function fnRecargarDerivaciones(htInterna){
    var grd = Ext.getCmp("grdDerivos");
    var dsDerivos = grd.getStore();
    dsDerivos.reload({
        params:{
            operacion: 'obtenerDerivosTramite',
            ingreso:htInterna
        }
    });
}